package cn.zkrt.aims;

import redis.clients.jedis.Jedis;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Set;
import java.util.Base64;
import java.io.FileOutputStream;
import java.io.IOException;

public class RedisToImage {
        public static void main(String[] args) {
        // 连接到Redis服务器
        //Jedis jedis = new Jedis("172.16.11.148",26379);
        //    Jedis jedis = new Jedis("172.16.13.149",26379);
       /// Jedis jedis = new Jedis("172.16.12.103",26379);
        Jedis jedis = new Jedis("192.168.2.107",16379,5000,50000);
        // jedis.auth("");

        // 获取所有以alert_开头的key
        Set<String> keys = jedis.keys("alert_*");
        // 获取当前日期并格式化为字符串
        String dateDir = new SimpleDateFormat("yyyy-MM-dd hh").format(new Date());

        // 创建保存图片的目录
        File directory = new File("images/" + dateDir);
        if (!directory.exists()) {
            directory.mkdirs();
        }

        for (String key : keys) {
            // 获取key对应的值
            String base64Image = jedis.get(key);

            // 将base64字符串转换为图片
            byte[] imageBytes = Base64.getDecoder().decode(base64Image);

            // 将图片保存到文件
            try (FileOutputStream fos = new FileOutputStream(directory.getPath() + "/" + key + ".png")) {
                fos.write(imageBytes);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        // 关闭连接
        jedis.close();
    }
}
